【go技巧】结构体类型的切片按照从小到大排序 |
您所在的位置:网站首页 › go 切片 数组 › 【go技巧】结构体类型的切片按照从小到大排序 |
目录 结构体类型的切片按照从小到大排序 结构体类型的切片按照从小到大排序可以使用 Go 语言中的 sort.Slice() 函数对结构体类型的切片进行排序。该函数接受一个切片和一个 less 函数作为参数,less 函数用于比较切片中的元素并按照指定顺序排序。 下面是一个示例代码,演示了如何使用 sort.Slice() 对结构体类型的切片按照从小到大排序: package main import ( "fmt" "sort" ) type Person struct { Name string Age int Gender string } func main() { persons := []Person{ {Name: "Alice", Age: 25, Gender: "Female"}, {Name: "Bob", Age: 30, Gender: "Male"}, {Name: "Charlie", Age: 20, Gender: "Male"}, {Name: "David", Age: 35, Gender: "Male"}, {Name: "Eva", Age: 28, Gender: "Female"}, } fmt.Println("Before sorting:", persons) // 使用 sort.Slice() 对结构体类型的切片进行排序 sort.Slice(persons, func(i, j int) bool { return persons[i].Age < persons[j].Age }) fmt.Println("After sorting:", persons) }在这个示例代码中,我们首先定义了一个包含多个 Person 结构体的切片 persons。然后,在输出原始切片的值后,我们调用 sort.Slice() 函数对其进行从小到大的排序。在 less 函数中,我们定义了比较函数,按照 Age 字段进行比较,因此最终切片将按照从小到大的年龄顺序排列。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |